      --A program to find the sum of a list of numbers
      -- The program uses a subroutine to add 2 numbers, as a demo
      -- It also sets up a stack frame, although not needed for this program
      -- 4000 = # of nums to sum
      -- 4004  = location for sum to be put
      -- 4008 = beginning of array of nums
      -- 
      -- R20, R21 - parameter passing regs
      -- R30 = SP
      -- R31 = Ret Addr Reg
      -- R3 = size of array, in bytes
      -- R4 = Address of beginning of array (4008)
      -- R5 = first address past array, for loop termination
      -- R6 = current address being worked on (loop i variable)
      -- R7 = sum
      -- R8 = current array data value
      -- 
      -- Data is at Org 4000
0:  ADDI R4, R0, 4000
4:  NOP
8:  NOP
12:  NOP
16:  NOP
20:  NOP
24:  SW R2, 0(R4)
28:  NOP
32:  NOP
36:  NOP
40:  NOP
44:  NOP
      -- Stack will be at Org5000 - R30 is SP
48:  ADDI R30, R0, 5000
52:  NOP
56:  NOP
60:  NOP
64:  NOP
68:  NOP
      -- Load number of elements
72:  LW R2, 0(R4)
76:  NOP
80:  NOP
84:  NOP
88:  NOP
92:  NOP
      -- Multiply this by 4, since each element is 4 bytes
96:  SLL R3, R2, 2
100:  NOP
104:  NOP
108:  NOP
112:  NOP
116:  NOP
      -- R4 is address of beginning of array of numbers
120:  ADDI R4, R4, 8
124:  NOP
128:  NOP
132:  NOP
136:  NOP
140:  NOP
      -- R5 now points to first address past array
144:  MUL R6, R2, R2
148:  NOP
152:  NOP
156:  NOP
160:  NOP
164:  NOP
168:  NOP
172:  NOP
176:  NOP
180:  NOP
184:  HALT
